package com.dragon.backstage.service;

import com.dragon.backstage.domain.param.login.LoginParam;
import com.dragon.backstage.domain.vo.login.LoginVo;
import com.dragon.common.utils.AjaxResult;

import java.io.IOException;

/**
 * 登陆服务类
 *
 * @author dragon
 * @version 1.0
 * @date 2024/8/1 17:37
 */
public interface LoginService {

    /**
     * 图片验证码
     *
     * @throws IOException IOException
     */
    void captcha() throws IOException;

    /**
     * 用户登陆
     *
     * @param param 登陆参数
     * @return AjaxResult<LoginVo>
     */
    AjaxResult<LoginVo> login(LoginParam param);

    /**
     * 注销登陆
     *
     * @return AjaxResult<Void>
     */
    AjaxResult<Void> logout();

    /**
     * 获取登陆用户ID
     *
     * @return 用户ID
     */
    Long getUserId();

    /**
     * 获取登陆用户账号
     *
     * @return 账号
     */
    String getAccount();

    /**
     * 获取登陆用户昵称
     *
     * @return 昵称
     */
    String getNickName();

    /**
     * 获取登陆用户账号类型
     *
     * @return 账号类型
     */
    String getUserType();

    /**
     * 获取登陆用户账号状态
     *
     * @return 账号状态
     */
    Byte getStatus();

}
